<?php
/**
 * Projeto Active Record
 * @author  <your-name-here>
 */
class Projeto extends TRecord
{
    const TABLENAME = 'projeto';
    const PRIMARYKEY= 'id_projeto';
    const IDPOLICY =  'serial'; // {max, serial}
    
    
    private $cliente;
    private $prioridade;
    private $situacao;
    private $tipo;

    /**
     * Constructor method
     */
    public function __construct($id = NULL, $callObjectLoad = TRUE)
    {
        parent::__construct($id, $callObjectLoad);
        parent::addAttribute('id_situacao');
        parent::addAttribute('id_prioridade');
        parent::addAttribute('id_tipo');
        parent::addAttribute('id_cliente');
        parent::addAttribute('titulo');
        parent::addAttribute('descricao');
    }

    
    /**
     * Method set_cliente
     * Sample of usage: $projeto->cliente = $object;
     * @param $object Instance of Cliente
     */
    public function set_cliente(Cliente $object)
    {
        $this->cliente = $object;
        $this->cliente_id = $object->id;
    }
    
    /**
     * Method get_cliente
     * Sample of usage: $projeto->cliente->attribute;
     * @returns Cliente instance
     */
    public function get_cliente()
    {
        // loads the associated object
        if (empty($this->cliente))
            $this->cliente = new Cliente($this->cliente_id);
    
        // returns the associated object
        return $this->cliente;
    }

    public function get_nome_cliente()
    {
        // loads the associated object
        if (empty($this->cliente))
            $this->cliente = new Cliente($this->cliente_id);
    
        // returns the associated object
        return $this->cliente->nome;
    }
    
    
    /**
     * Method set_prioridade
     * Sample of usage: $projeto->prioridade = $object;
     * @param $object Instance of Prioridade
     */
    public function set_prioridade(Prioridade $object)
    {
        $this->prioridade = $object;
        $this->prioridade_id = $object->id;
    }
    
    /**
     * Method get_prioridade
     * Sample of usage: $projeto->prioridade->attribute;
     * @returns Prioridade instance
     */
    public function get_prioridade()
    {
        // loads the associated object
        if (empty($this->prioridade))
            $this->prioridade = new Prioridade($this->prioridade_id);
    
        // returns the associated object
        return $this->prioridade;
    }
    
    
    /**
     * Method set_situacao
     * Sample of usage: $projeto->situacao = $object;
     * @param $object Instance of Situacao
     */
    public function set_situacao(Situacao $object)
    {
        $this->situacao = $object;
        $this->situacao_id = $object->id;
    }
    
    /**
     * Method get_situacao
     * Sample of usage: $projeto->situacao->attribute;
     * @returns Situacao instance
     */
    public function get_situacao()
    {
        // loads the associated object
        if (empty($this->situacao))
            $this->situacao = new Situacao($this->situacao_id);
    
        // returns the associated object
        return $this->situacao;
    }
    
    
    /**
     * Method set_tipo
     * Sample of usage: $projeto->tipo = $object;
     * @param $object Instance of Tipo
     */
    public function set_tipo(Tipo $object)
    {
        $this->tipo = $object;
        $this->tipo_id = $object->id;
    }
    
    /**
     * Method get_tipo
     * Sample of usage: $projeto->tipo->attribute;
     * @returns Tipo instance
     */
    public function get_tipo()
    {
        // loads the associated object
        if (empty($this->tipo))
            $this->tipo = new Tipo($this->tipo_id);
    
        // returns the associated object
        return $this->tipo;
    }
    


}
